Digital graphics and digital image editing are the processes of creating and/or modifying digitally generated or digitally acquired and stored image data. Using specialized software programs, users may create, generate, manipulate, edit and transform images in a variety of ways. These digital image editors may include programs of differing complexity, such as limited-purpose programs associated with acquisition devices (e.g., digital cameras and scanners with bundled or built-in programs for managing brightness and contrast); limited editors suitable for relatively simple operations such as rotating and cropping images; and professional-grade programs with large and complex feature sets. Similarly, digital graphics editors may include programs of differing complexity, such as limited-purpose programs associated with acquisition devices (e.g., digital cameras and scanners with bundled or built-in programs for managing colour balance or applying specific graphics effects); limited editors suitable for relatively simple graphics generation (e.g., for example as part of general suites of software for business and/or residential users); and professional-grade programs with large and complex feature sets (e.g., simulating different artistic formats such as watercolour, calligraphy, pastels, oils, etc. with various applicators including various brushes, pens, air brushes, markers, sponges and knives).
Digital graphics and digital images may include, for example, “formatted” graphics and/or graphics data for use in generating an image with a digital graphics editor suite prior to “printing” the final or interim image. Accordingly, such graphics and images may include raster graphics, vector graphics, or a combination thereof. Raster graphics data (also referred to herein as bitmaps) may be stored and manipulated as a grid of individual picture elements called pixels. A bitmap may be characterized by its width and height in pixels and also by the number of bits per pixel. Commonly, a colour bitmap defined in the RGB (red, green blue) colour space may comprise between one and eight bits per pixel for each of the red, green, and blue channels. Another commonly used representation is a CMYK colour space. In these and other colour space representations, an alpha channel may be used to store additional data such as per-pixel transparency values (or the inverse-opacity values). For example, per-pixel data representing paint on a brush tool or on a canvas may include a set of colour values (e.g., one per channel) and an opacity value for the paint. In contrast vectors graphics are generally characterized by the use of geometrical primitives such as points, lines, curves, and shapes or polygons, all of which are based on mathematical expressions, to represent images along with boundary information (e.g. stroke line style and colour) and fill information (e.g. fill style and colour). As such vector graphics allows for manipulation of individual elements or groups of elements within the graphical image independent of the overall graphical image. Further, formats such as Scalable Vector Graphics (SVG, an XML-based vector image format) allow two-dimensional graphics supporting interactivity and animation wherein as they are specified within and have their behaviors defined in XML text files they can be searched, indexed, scripted, and compressed plus as SVG rendering is supported by all major modern web browsers an image can be generated, defined, and transmitted wherein the receiving device based upon the display etc. generates the final image displayed to the user.
An operation often provided by digital graphics and digital image editors is the use of mark making tools such as virtual “paintbrushes”, “pens” (defined by “pen nibs”), “pencils”, “pastels” etc. which are used to modify a digital image by depositing virtual paint, virtual ink, virtual chalk, or virtual graphite etc. Within the prior art significant effort has gone into establishing realistic “virtual” representations of applying brushes, ink, chalk etc. as well as simulating the flow or absorption of inks, watercolour paints etc. on different artistic papers etc. Existing applications provide multiple settings for users to control the appearance of the stroke, e.g. size, opacity, mark making tool, and brush style as they make a motion within an input device on the computer system such as a mouse, a touchscreen, a stylus, etc. Additional software features seek to increase the realism of strokes by simulating varying user tool handling, pressure, angle of tool, etc. providing for the application of predefined functions and/or jitter to the values of the mark making tool within the stroke. Predefined functions address, for example, the initial or final stages of a stroke for the application of a brush to canvas whilst jitter addresses the intervening section of the stroke. In this manner, a brush stroke may be simulated as having increasing pressure at the beginning of stroke, some variability in pressure during the stroke, and decreasing pressure at the end of the stroke.
However, fundamentally all of these software enhancements, modifications, mark making tools etc. are driven by the user providing input via an input device such as a mouse, a touchscreen, a stylus, etc. However, hand-drawing and sketching in vector format graphics is very unnatural and accordingly a user's strokes with mark making tools that are rendered by software application will generally be unnatural and appear artificial despite the goal of the software application being to simulate as realistically as possible. Hand-drawing and sketching within a vector-based graphics application to date has required significant training of and understanding by the user with respect to complex vector graphics methods including, example, whether to use quadratic versus cubic Beziers, B-splines, 3-point curves, polylines, node editing, smoothing, etc. Accordingly, it would be beneficial to lower the barrier to accessing computer graphics applications for users in respect of making hand-drawing or sketching easier to perform.
Further it would be beneficial even with traditional illustrators to enhance hand-drawing and sketching interfaces as may illustrators still draw their art or design on real paper first and converting ink/pen/pencil on paper to vector graphics for editing is at presented difficult and complex. Within the prior art the conversion of a hand drawn pencil sketch to a vector graphics image within a computer graphics application generally involves the user of multiple software applications and the performance of typically 15+ steps comprising drawing, cleaning up, scanning, cleaning up, tracing, cleaning up, editing and assigning features/properties etc. From reviewing the prior art and online tutorials etc., see for example https://www.shutterstock.com/blog/2011/06/converting-to-vector-art/, every sketch involves a different approach and unique steps to obtain a good result. This is already too complex, time-consuming, and tedious for most traditional artists to even attempt so what chance does the average consumer as a user stand.
Even where the user is sketching with a digital pen-based tablet requires special hardware/software and industry leading software products still only result in raster outputs which still require tracing in order to obtain a vector result that can be edited. Accordingly, a direct vector-based hand-drawing/sketching entry format through any input methodology would be beneficial.
Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.